package com.yunshan.member.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.yunshan.common.annotation.Excel;
import com.yunshan.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 会员信息对象 member_user_info
 *
 * @author yunshan
 * @date 2025-01-17
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class MemberUserInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 姓名 */
    @ApiModelProperty("姓名")
    @Excel(name = "姓名")
    private String name;

    /** 电话 */
    @ApiModelProperty("电话")
    @Excel(name = "电话")
    private String phone;

    /** 会籍类型：1业主会籍，2精英会籍，3公司会籍，4临时会籍 */
    @ApiModelProperty("会籍类型：1业主会籍，2精英会籍，3公司会籍，4临时会籍")
    @Excel(name = "会籍类型：1业主会籍，2精英会籍，3公司会籍，4临时会籍")
    private String memberType;

    /** 房型(业主会籍) */
    @ApiModelProperty("房型(业主会籍)")
    @Excel(name = "房型(业主会籍)")
    private String roomType;

    /** 房号(业主会籍) */
    @ApiModelProperty("房号(业主会籍)")
    @Excel(name = "房号(业主会籍)")
    private String roomNumber;

    /** 公司名称(精英会籍、公司会籍) */
    @ApiModelProperty("公司名称(精英会籍、公司会籍)")
    @Excel(name = "公司名称(精英会籍、公司会籍)")
    private String companyName;

    /** 身份证号(精英会籍) */
    @ApiModelProperty("身份证号(精英会籍)")
    @Excel(name = "身份证号(精英会籍)")
    private String idCard;

    /** 会籍号 */
    @ApiModelProperty("会籍号")
    @Excel(name = "会籍号")
    private Long memberNum;

    /** 余额 */
    @Excel(name = "余额")
    @ApiModelProperty("余额")
    private BigDecimal balance;

    /** 开卡时间 */
    @ApiModelProperty("开卡时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "开卡时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date issueTime;

    /** 状态: 1未使用，0使用中 */
    @ApiModelProperty("状态: 1未使用，0使用中")
    @Excel(name = "状态: 1未使用，0使用中")
    private Integer status;

    /** 关联用户id */
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private Long userId;

    /** 登录手机号 */
    @ApiModelProperty("登录手机号")
    @Excel(name = "登录手机号")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String loginPhone;

    /** 是否删除0:未删除,1:删除 */
    @ApiModelProperty("是否删除0:未删除,1:删除")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private Integer isDeleted;

    /** 开始时间 */
    @ApiModelProperty("开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private Date startTime;

    /** 结束时间 */
    @ApiModelProperty("结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private Date endTime;

    /** 副卡张数 */
    @ApiModelProperty("副卡张数")
    @Excel(name = "副卡张数")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private Integer subCount;

    /** 性别 */
    @ApiModelProperty("性别")
    @Excel(name = "性别")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private Integer sex;

    /** 生日 */
    @ApiModelProperty("生日")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private Date birthday;

    /** 礼包发放状态 0未发放，已发放 */
    @ApiModelProperty("礼包发放状态 0未发放，已发放")
    @Excel(name = "礼包发放状态 0未发放，已发放")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private Integer giftStatus;

    /** 礼包数量 */
    @ApiModelProperty("礼包数量")
    @Excel(name = "礼包数量")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private Integer giftCount;

    /** 优惠券数量 */
    @ApiModelProperty("优惠券数量")
    @Excel(name = "优惠券数量")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private Integer couponCount;
}
